﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace BDSim
{
    /// <summary>
    /// 导航服务性能计算输出结构体
    /// </summary>
    public struct DOPOutput
    {
        /// <summary>
        /// 几何精度因子
        /// </summary>
        public double GDOP;

        /// <summary>
        /// 位置精度因子
        /// </summary>
        public double PDOP;

        /// <summary>
        /// 水平精度因子
        /// </summary>
        public double HDOP;

        /// <summary>
        /// 垂直精度因子
        /// </summary>
        public double VDOP;

        /// <summary>
        /// 时间精度因子
        /// </summary>
        public double TDOP;

        /// <summary>
        /// 可见星数目
        /// </summary>
        public int AccessNum;

        public double HNSP;
        public double VNSP;
        public double PNSP;
        public double TNSP;
    }

    /// <summary>
    /// 接收机定位、测速、授时输出结果（含DOP值）
    /// </summary>
    public struct PVTOutputData
    {
        /// <summary>
        /// 定位结果，CGCS2000直角坐标系中位置
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public double[] Pos;

        /// <summary>
        /// 测速结果，CGCS2000直角坐标系中速度
        /// </summary>
        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
        public double[] Vel;

        /// <summary>
        /// 授时结果
        /// </summary>
        public double DeltT;

        /// <summary>
        /// 定位精度因子
        /// </summary>
        public DOPOutput DopOutputData;
    }

}
